#if !USE_CONSOLE

#ifndef CAMERA_PANEL_H
#define CAMERA_PANEL_H

#include <QWidget>
#include <QtGui>

#include "src/scene/camera.h"

class CameraPanel : public QWidget {
	Q_OBJECT

    signals:
        void update();
//        void updateMPerPixel(int);
//        void updateNPerPixel(int);

    public:
        CameraPanel(QWidget * = 0, Camera * = 0);
        ~CameraPanel();

        void setCamera(Camera *_c){camera = _c; clear(); createLayout();};

    private slots:
        void changeEyeX(double);
        void changeEyeY(double);
        void changeEyeZ(double);
        void changeLookAtX(double);
        void changeLookAtY(double);
        void changeLookAtZ(double);
        void changeUpX(double);
        void changeUpY(double);
        void changeUpZ(double);
        void changeM(int);
        void changeN(int);
        void changeMPerPixel(int);
        void changeNPerPixel(int);
        void changeFocalDistance(double);
        void changeImagePlane(double);
        void changeZoom(double);
        void changeRadius(double);
        void activateDepthOfField(bool);
        void activateAntialiasing(bool);
        void changeAntialiasingType(int);
        void changeFilterType(int);
        void changeFilterGaussianSigma(double);
        void changeFilterLaplacianNeighborhood(int);
        void changeFilterLaplacianNegative(int);

    private:
        int nPerPixel_, mPerPixel_, type_;
        Camera *camera;

        QDoubleSpinBox *filterGaussianSigmaDoubleSpinBox;
        QComboBox *filterLaplacianNeighborhoodComboBox;
        QComboBox *filterLaplacianNegativeComboBox;
        QLabel *filterGaussianSigmaLabel, *filterLaplacianNeighborhoodLabel, *filterLaplacianNegativeLabel;

        void createLayout();
        void clear();
};

#endif

#endif //!USE_CONSOLE
